#pragma once
#include <vector>
#include "decMesh3.h"
#include "color4.h"
namespace ds3{
	interface _3DS_Texture
	{
		virtual const TCHAR*name()const=0;
		virtual const TCHAR*imageFileName()const=0;
		virtual const color4&ambient()const=0;
		virtual const color4 &diffuse()const=0;
		virtual const color4 &specular()const=0;
		virtual float transparent()const=0;
	};
	typedef std::vector<_3DS_Texture*> _3DS_TextureIterator;
	interface _3DS_Object
	{
		virtual const decMesh3*mesh()=0;
		virtual const TCHAR*name()const=0;
		virtual const TCHAR*texName()const=0;
	};
	typedef std::vector<_3DS_Object*> _3DS_ObjectIterator;
	class __declspec(dllexport) I3DSFile
	{
		class I3DSFile_imp* m_imp;
	public:
		I3DSFile(void);
		~I3DSFile(void);
		bool loadFromFile(const TCHAR*path);
		bool newObjectIterator(_3DS_ObjectIterator&iter)const;
		bool newTextureIterator(_3DS_TextureIterator&iter)const;
	};
}
